//package com.plian.system.service.ra.landdisposal;
//
//import com.plian.Tools.TokenUtil;
//import com.plian.Tools.UuidUtil;
//import com.plian.Tools.pagedata.PageData;
//import com.plian.system.config.exception.MyRuntimeException;
//import com.plian.system.constant.sys.FormTypeConstant;
//import com.plian.system.dao.ra.landassets.LandAssetsDao;
//import com.plian.system.dao.ra.landdisposal.LandDisposalDao;
//import com.plian.system.dao.sys.orgzation.OrgzationDao;
//import com.plian.system.model.CommonCode;
//import com.plian.system.model.ListResult;
//import com.plian.system.model.ObjResult;
//import com.plian.system.model.page.Page;
//import com.plian.system.service.sys.code.IFormCodeService;
//import com.plian.system.service.sys.file.FileService;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang.exception.ExceptionUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.Date;
//import java.util.List;
//
//import static com.plian.system.constant.sys.FormStatusConstant.*;
//
//@Slf4j
//@Service
//public class LandDisposalService {
//    @Autowired
//    LandDisposalDao landDisposalDao;
//    @Autowired
//    LandAssetsDao landAssetsDao;
//    @Autowired
//    OrgzationDao orgzationDao;
//    @Autowired
//    FileService fileService;
//    @Autowired
//    IFormCodeService formCodeService;
//    /**
//     * 保存
//     *
//     * @param pd
//     * @return
//     */
//    public ObjResult save(PageData pd) {
//        try {
//            pd.put("id", UuidUtil.get32UUID());
//            pd.put("orgId", TokenUtil.getTokenOrgId());
//            pd.put("formType", FormTypeConstant.RA_LAND_DISPOSAL);
//            pd.put("code",formCodeService.getCode(FormTypeConstant.RA_LAND_DISPOSAL));
//            pd.put("createTime", new Date());
//            pd.put("createUser", TokenUtil.getTokenUserId());
//            pd.put("updateTime", new Date());
//            pd.put("updateUser", TokenUtil.getTokenUserId());
//            pd.put("reportTime", new Date());
//            landDisposalDao.save(pd);
//            return new ObjResult(CommonCode.SUCCESS);
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            throw new MyRuntimeException(new ObjResult(CommonCode.ERROR));
//        }
//    }
//
//    /**
//     * 修改
//     *
//     * @param pd
//     * @return
//     */
//    public ObjResult edit(PageData pd) {
//        try {
//            pd.put("updateTime", new Date());
//            pd.put("updateUser", TokenUtil.getTokenUserId());
//            pd.put("reportTime", new Date());
//            landDisposalDao.edit(pd);
//            return new ObjResult(CommonCode.SUCCESS);
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            throw new MyRuntimeException(new ObjResult(CommonCode.ERROR));
//        }
//    }
//
//    /**
//     * 单据详情
//     *
//     * @param pd
//     * @return
//     */
//    public ObjResult findbyid(PageData pd) {
//        try {
//            ObjResult objResult;
//            PageData p = landDisposalDao.findbyid(pd.getString("id"));
//            objResult = new ObjResult(CommonCode.SUCCESS);
//            objResult.setPageData(p);
//            return objResult;
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            throw new MyRuntimeException(new ObjResult(CommonCode.ERROR));
//        }
//    }
//
//    /**
//     * 根据id删除
//     *
//     * @param ids
//     * @return
//     */
//    public ObjResult del_ids(List<String> ids) {
//        try {
//            landDisposalDao.del_ids(ids);
//            return new ObjResult(CommonCode.SUCCESS);
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            throw new MyRuntimeException(new ObjResult(CommonCode.ERROR));
//        }
//    }
//
//    /**
//     * 查询列表
//     *
//     * @return
//     */
//    public ListResult list(PageData pd) {
//        ListResult listResult;
//        try {
//            pd.put("orgId", TokenUtil.getTokenOrgId());
//            Page page = new Page(true, pd);
//            List<PageData> list = landDisposalDao.list(page);
//            listResult = new ListResult(CommonCode.SUCCESS);
//            listResult.setList(list);
//            listResult.setTotal(page.getTotal());
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            listResult = new ListResult(CommonCode.ERROR);
//        }
//        return listResult;
//    }
//
//
//    /**
//     * 提交
//     *
//     * @param ids
//     * @return
//     */
//    public ObjResult submit(List<String> ids) {
//        try {
//            PageData pageData = new PageData();
//            pageData.put("status", String.valueOf(FINISH));
//            pageData.put("ids", ids);
//            List<PageData> list = landDisposalDao.findByIds(pageData);
//            List<String> landIds = new ArrayList<>();
//            for (
//                    PageData pd : list
//            ) {
//                landIds.add(pd.getString("landAssetsId"));
//            }
//            if(landIds.size()>0){
//                PageData pageData1 = new PageData();
//                pageData1.put("status", "4");
//                pageData1.put("id", landIds);
//                landAssetsDao.refer(pageData1);
//            }
//            landDisposalDao.refer(pageData);
//            return new ObjResult(CommonCode.SUCCESS);
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            return new ObjResult(CommonCode.ERROR);
//        }
//    }
//
//    /**
//     * 退回单据
//     *
//     * @param formId 单据id
//     */
//    public void reject(String formId) throws Exception {
//        PageData pageData = new PageData();
//        pageData.put("status", String.valueOf(REJECT));
//        pageData.put("id", Collections.singletonList(formId));
//        landDisposalDao.refer(pageData);
//    }
//
//    /**
//     * 审批完成
//     *
//     * @param formId
//     */
//    public void finish(String formId) {
//        try {
//            PageData pageData = new PageData();
//            pageData.put("status", String.valueOf(FINISH));
//            pageData.put("id", Collections.singletonList(formId));
//            landDisposalDao.refer(pageData);
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            throw new MyRuntimeException("单据流转完成时修改单据状态失败！");
//        }
//    }
//
//    /**
//     * 工作流
//     *
//     * @param formIds 单据ids
//     */
//    public List<PageData> findByIds(List<String> formIds) {
//        try {
//            PageData pageData = new PageData();
//            pageData.put("ids", formIds);
//            return landDisposalDao.findByIds(pageData);
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//            throw new MyRuntimeException("根据单据id列表查询报表失败！");
//        }
//    }
//
//    /**
//     * 回退状态单据
//     */
//    public void goBackToStash(String formId) {
//        try {
//            PageData p = landDisposalDao.findbyid(formId);
//            p.put("status",UNREVIEWED);
//            landDisposalDao.edit(p);
//        } catch (Exception e) {
//            log.error(ExceptionUtils.getFullStackTrace(e));
//        }
//    }
//}
